p[20]={'a','b','c'}用sizeof计算长度是20 还是4
来源:百度知道 编辑:UC知道 时间:2024/05/19 03:39:37
当然是20
char p1[20]={'a','b','c'};
char* p2 = p1;
sizeof(p1) //20
sizeof(p2) //4
指针的大小都是4字节
数组名的大小就是整个数组的大小,
这个记住就好了
是20,因为你开始已经给数组p声情了20个字节的空间。你往里面装的虽然只有四个字符,但是还有16个空间是空着的。就像你的袋子里很大,但是只装了很少东西。
int p[20]={'a','b','c'};
printf("%d ",sizeof(p)); -- VC++ 80, TC 40
char p[20]={'a','b','c'};
printf("%d ",sizeof(p)); -- 20
声明了有20个元素。 1个 char是1, 1个short int 是2, 1个long int 是4.